import java.io.Serializable;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Observable;


public class Periodique extends Observable implements Serializable{
	
	// ************************************************************************************************************
	// Attributs
	// ************************************************************************************************************	
	private String _issn;
	private String _nomp;
	
	// Attributs d'Association
	private HashSet<Parution> _parutions;
	
	public Periodique(String issn, String nomp)
	{		
		this.setIssn(issn);
		this.setNomp(nomp);	
		this.setParutions(new HashSet<Parution>());
	} // Fin Constructeur
	
	// ************************************************************************************************************
	// Méthodes privées
	// ************************************************************************************************************
	
	// ------------------------------------------------------------------------------------------------------------
	// Affecteurs
	
	/**
	 * setter de l'attribut num d'ISSN.
	 * @param issn valeur à affecter à l'issn du periodique
	 */
	private void setIssn(String issn) {
		this._issn = issn;
	}

	/**
	 * setter de l'attribut nomp.
	 * @param titre valeur à affecter au nomp du periodique
	 */
	private void setNomp(String nomp){
		this._nomp = nomp;
	}
	
	private void setParutions(HashSet<Parution> parutions){
		this._parutions=parutions;
	}
	
	public HashSet<Parution> getParutions(){
		return this._parutions;
	}
	
	public Parution getParution(String numero){
		if (_parutions!=null){
			Iterator<Parution> p = _parutions.iterator();
			while (p.hasNext()) {
				if (p.next().getNumero()==Integer.parseInt(numero)){
					if(p.hasNext()){
					return p.next();
					}
				}
			}
		}
		return null;
	}
	
	public void notifierObservateurs() {
		this.setChanged();
		this.notifyObservers();	
	}
	
	void setParution(Parution p){
		HashSet<Parution> parutions= this._parutions;
		parutions.add(p);
		this._parutions=parutions;
		this.notifierObservateurs();
	}
	
	String getNomp(){
		return this._nomp;
	}
	
	String getIssn(){
		return _issn;
	}


}
